perm filename DELETE.SAI[PNT,HE]2 blob sn#375123 filedate 1978-08-21 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN
C00006 ENDMK
C⊗;
BEGIN
COMMENT THIS PROGRAM IS USED TO DELETE .REL FILES ON [PNT,HE]
	WHICH MAY NOT BE OTHERWISE DELETED FOR A RECOMPILATION
	IT MAKES USE OF THE DATA FILE DELETE.DAT WHICH SHOULD BE
	EDITED WITH /N SWITCH;
INTEGER DATCHAN;
INTEGER DBRCHAR,DEOF,DFLAG;

INTEGER SRCCHAN,RELCHAN;
INTEGER SBRCHAR,SEOF,SFLAG,RBRCHAR,REOF,RFLAG;

INTEGER BRCHAR;
INTEGER NULBR,WORDENDBR,WORDBEGBR;

STRING INPUTSTRING,RFILE,SFILE,RFILE0;
STRING REXT,SEXT;

INTEGER RDATE,SDATE,RTIME,STIME;
PROCEDURE GETINFO(REFERENCE INTEGER DATE,TIME; REFERENCE STRING EXT);
	BEGIN
	INTEGER ARRAY INFOARRAY[1:6];
	FILEINFO(INFOARRAY);
	DATE←((INFOARRAY[2] LAND '700000)LSH -3 )+ INFOARRAY[3] LAND '7777;
	TIME←(INFOARRAY[3] LSH -12)LAND '3777;
	EXT←CV6STR(INFOARRAY[2] LAND ('777777 LSH 18))[1 TO 3];
	END;

REQUIRE "[][]" DELIMITERS;
DEFINE ! = [COMMENT],
	FF =['14],
	CR =['15],
	LF =['12],
	CRLF = [('15&'12)],
	SP =['40],
	TB =['11];

! now look for DELETE.DAT[PNT,HE] ;

OUTSTR(CRLF&"EXECUTING DELETE.DMP[PNT,HE]...."&CRLF);

OPEN(DATCHAN←GETCHAN,"DSK",0,2,0,200,DBRCHAR,DEOF);
LOOKUP(DATCHAN,"DELETE.DAT[PNT,HE]",DFLAG);
IF DFLAG THEN OUTSTR(CRLF&"COULDN'T LOOKUP FILE DELETE.DAT[PNT,HE]"&CRLF);


SETBREAK(NULBR←GETBREAK,FF,NULL,"INKS");
SETBREAK(WORDBEGBR←GETBREAK,"ABCDEFGHIJKLMNOPQRSTUVWXYZ",SP&TB&LF,"INR");
SETBREAK(WORDENDBR←GETBREAK,SP&TB&CR,LF,"INS");


OPEN(SRCCHAN←GETCHAN,"DSK",0,2,0,200,SBRCHAR,SEOF);
OPEN(RELCHAN←GETCHAN,"DSK",0,2,0,200,RBRCHAR,REOF);
INPUTSTRING←NULL;
DO INPUTSTRING←INPUTSTRING&INPUT(DATCHAN,NULBR) UNTIL DEOF;
RFILE0←"XXXXXXX";
DO BEGIN
	LABEL DONE;
	SCAN(INPUTSTRING,WORDBEGBR,BRCHAR);
	RFILE←SCAN(INPUTSTRING,WORDENDBR,BRCHAR);
	IF BRCHAR≠TB THEN 
		BEGIN OUTSTR(CRLF&"Need tab after "&rfile&crlf&" TYPE CR TO CONTINUE");
			INCHWL;
		END;
	SCAN(INPUTSTRING,WORDBEGBR,BRCHAR);
	SFILE←SCAN(INPUTSTRING,WORDENDBR,BRCHAR);
	IF BRCHAR≠CR THEN
		BEGIN OUTSTR(CRLF&"Need <RETURN> after "&rfile&crlf&" TYPE CR TO CONTINUE");
			INCHWL;
		END;

	IF NOT EQU(RFILE,RFILE0) THEN
		BEGIN
		RFILE0←RFILE;
		LOOKUP(RELCHAN,RFILE,RFLAG);
		IF RFLAG THEN GOTO DONE;
		GETINFO(RDATE,RTIME,REXT);
		END;
	LOOKUP(SRCCHAN,SFILE,SFLAG);
	GETINFO(SDATE,STIME,SEXT);
	IF (SDATE>RDATE OR (SDATE=RDATE AND STIME≥RTIME)) AND EQU(REXT,"REL")
		THEN RENAME(RELCHAN,NULL,0,RFLAG);


DONE:	END UNTIL LENGTH(INPUTSTRING)≤2;

END;